﻿using System;
using System.Collections.Generic;
using GSQ.BusinessEntities;
using GSQ.DataAccess;

namespace GSQ.BusinessLogic
{
    public class CotizacionesBL
    {
        public decimal Insert(COTIZACIONES value)
        {
            if (value.IsValid())
            {
                if (value.COTIZACIONES_DETALLES.Count == 0)
                { throw new ArgumentException("No puede crear COTIZACIONES sin agregar detalle"); }

                value.FECHA = new UtilidadesDA().GetDate();                         

                return new CotizacionesDA().Insert(value);
            }
            else
                throw new ArgumentException("La entidad no esta valida");
        }

        public decimal Update(COTIZACIONES newValue, COTIZACIONES oldValue)
        {
            if (newValue.IsValid())
            {
                if (newValue.COTIZACIONES_DETALLES.Count == 0)
                { throw new ArgumentException("No puede crear COTIZACIONES sin agregar detalle"); }

                return new CotizacionesDA().Update(newValue, oldValue);
            }
            else
                throw new ArgumentException("La entidad no esta valida");

        }

        public COTIZACIONES GetById(decimal id)
        {
            return new CotizacionesDA().GetById(id);
        }

        public List<COTIZACIONES> GetAll()
        {
            return new CotizacionesDA().GetAll();
        }

        public List<COTIZACIONES> GetByFechas(DateTime value1, DateTime value2)
        {
            return new CotizacionesDA().GetByFechas(value1.Date, value2.Date);
        }

        public List<COTIZACIONES> GetByIdCliente(decimal id)
        {
            return new CotizacionesDA().GetByCliente(id);
        }

        public List<COTIZACIONES> GetByCliente(string value)
        {
            return new CotizacionesDA().GetByCliente(value);
        }
    }
}
